// 负责异步请求的promise对象封装
function request(url, method, data, header = {}) {
  // 发送请求之前显示正在加载中浮窗   
  wx.showLoading({
    title:"加载中"
  })
  // 主要是为了返回一个promise对象
  return new Promise((resolve, reject) => {
    wx.request({
      url: url,
      method: method,
      data: data,
      header,
      success: res => {
        // 请求成j功调用promise对象的then的方法
        resolve(res)
        // 数据请求完成关闭正在加载浮窗
        wx.hideLoading();
      },
      fail: error => {
        // 失败的回调
        console.log(error);
      }
    })
  })
}
// 专门处理get请求
request.get = function (url,data) {
  return request(url,"GET",data)
}
// 专门处理post请求
request.post = function (url,data) {
  return request(url,"POST",data)
}
// 专门处理登录状态请求
request.auth = function (url, data) {
  
  return new Promise((resolve, reject) => { 
    // 验证token
    if (!wx.getStorageSync("token")) {
      wx.navigateTo({
        url: "/pages/auth/main"
      })
      return;
    }
    // 最终的请求
    request(url, "POST", data, {
      Authorization:wx.getStorageSync("token")
    }).then(res => { 
      resolve(res);
    })
  })
}

export default request;
